ফায়ারবেস (Firebase) ব্যবহার করে Google, Facebook, এবং অন্যান্য থার্ড-পার্টি OAuth প্রদানকারী (OAuth Providers) এর মাধ্যমে লগইন করার প্রক্রিয়া খুবই সহজ। ফায়ারবেসের Authentication সেবা দিয়ে আপনি বিভিন্ন সোসাল মিডিয়া এবং থার্ড-পার্টি সাইন-ইন প্রদানকারী (যেমন Google, Facebook, Twitter ইত্যাদি) ব্যবহার করে ইউজারকে আপনার অ্যাপে লগইন করতে দিতে পারেন।
এখানে Google, Facebook, এবং অন্যান্য OAuth প্রদানকারীর মাধ্যমে লগইন কনফিগার এবং বাস্তবায়ন করার বিস্তারিত প্রক্রিয়া দেওয়া হল।
ফায়ারবেসে OAuth প্রদানকারী কনফিগার করা
১. ফায়ারবেস কনসোলে লগইন
প্রথমে, ফায়ারবেস কনসোলে লগইন করুন:
Firebase Console
- আপনার প্রজেক্টটি খুলুন।
- ড্যাশবোর্ড থেকে Authentication ট্যাব নির্বাচন করুন।
- Sign-in method পৃষ্ঠা নির্বাচন করুন।
এখানে আপনি বিভিন্ন সাইন-ইন পদ্ধতি দেখতে পাবেন। Google, Facebook এবং অন্যান্য OAuth প্রদানকারীকে সক্ষম করতে হবে।
২. Google Sign-In কনফিগার করা
- Google সাইন-ইন পদ্ধতি চালু করতে, Google নির্বাচন করুন এবং Enable টগল করুন।
- প্রয়োজনীয় তথ্য পূর্ণ করুন:
- Web client ID: ওয়েব অ্যাপ্লিকেশন ব্যবহারের জন্য। এটি আপনার Google Developer Console থেকে পাওয়া যাবে।
- Web client secret: এর মাধ্যমে আপনি আপনার অ্যাপের গুগল OAuth সেক্রেট পেতে পারেন।
এবার, আপনার অ্যাপে গুগল সাইন-ইন সক্ষম হয়ে যাবে।
৩. Facebook Sign-In কনফিগার করা
- Facebook সাইন-ইন পদ্ধতি চালু করতে, Facebook নির্বাচন করুন এবং Enable টগল করুন।
- Facebook App ID এবং App Secret প্রয়োজন। এটি পেতে, আপনার Facebook Developer Console থেকে একটি অ্যাপ তৈরি করুন:
- অ্যাপ তৈরি হলে, আপনার App ID এবং App Secret ফিল্ডে যুক্ত করুন।
এবার, আপনি Facebook OAuth প্রদানকারী ব্যবহারের জন্য প্রস্তুত।
৪. Twitter এবং অন্যান্য OAuth প্রদানকারী কনফিগার করা
- ফায়ারবেসের মধ্যে Twitter অথবা অন্যান্য OAuth প্রদানকারী সংযোগ করতে, "Enable" বাটনে ক্লিক করুন।
- প্রয়োজনীয় তথ্য পূর্ণ করুন, যেমন:
- API Key এবং API Secret Key (Twitter এর জন্য)
- অন্যান্য প্রদানকারীর জন্য তাদের প্রয়োজনীয় তথ্য।
৫. Firebase SDK ইনস্টল ও কনফিগারেশন
অ্যান্ড্রয়েড অ্যাপ:
এখন, আপনার অ্যান্ড্রয়েড অ্যাপে ফায়ারবেস Authentication SDK ইনস্টল এবং কনফিগার করতে হবে।
build.gradleফাইলে নিচের লাইব্রেরি যোগ করুন:
dependencies {
implementation 'com.google.firebase:firebase-auth:21.0.0' // Firebase Authentication
}
- Google Sign-In ইনিশিয়ালাইজ করার জন্য নিচের কোড ব্যবহার করুন:
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.GoogleAuthProvider;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
public class MainActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private GoogleSignInClient mGoogleSignInClient;
private static final int RC_SIGN_IN = 9001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
// Google Sign-In ক্লায়েন্ট তৈরি করা
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
findViewById(R.id.sign_in_button).setOnClickListener(view -> signIn());
}
private void signIn() {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
GoogleSignInAccount account = task.getResult(ApiException.class);
// Firebase with Google authentication
firebaseAuthWithGoogle(account);
} catch (ApiException e) {
// Handle sign-in failure
}
}
}
private void firebaseAuthWithGoogle(GoogleSignInAccount account) {
AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
// Sign in success
} else {
// If sign-in fails
}
});
}
}
আইওএস অ্যাপ:
- প্রথমে, CocoaPods ব্যবহার করে Firebase Authentication SDK ইনস্টল করুন:
pod 'Firebase/Auth'
- তারপর Google Sign-In কনফিগারেশন কোড ব্যবহার করুন:
import Firebase
import GoogleSignIn
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
func signInWithGoogle() {
GIDSignIn.sharedInstance().signIn(with: signInConfig, presenting: self) { user, error in
if let error = error {
// Handle error
return
}
// Firebase Sign-in with Google
guard let authentication = user?.authentication else { return }
let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken, accessToken: authentication.accessToken)
Auth.auth().signIn(with: credential) { (authResult, error) in
// Handle successful login or failure
}
}
}
৬. Facebook Sign-In কনফিগারেশন
অ্যান্ড্রয়েড অ্যাপে Facebook সাইন-ইন কনফিগার করা:
- Facebook SDK ইনস্টল করার জন্য
build.gradleফাইলে লাইব্রেরি যোগ করুন:
dependencies {
implementation 'com.facebook.android:facebook-android-sdk:latest-version'
}
- Facebook Login কনফিগার করুন:
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));
আইওএস অ্যাপে Facebook সাইন-ইন কনফিগার করা:
- CocoaPods দিয়ে Facebook SDK ইনস্টল করুন:
pod 'FacebookLogin'
- Facebook Login কোড:
import FacebookLogin
let loginManager = LoginManager()
loginManager.logIn(permissions: [.email], viewController: self) { result in
switch result {
case .failed(let error):
print("Login failed with error: \(error)")
case .cancelled:
print("Login cancelled")
case .success(let grantedPermissions, let declinedPermissions, let token):
print("Logged in with token: \(token)")
// Firebase Facebook Authentication
let credential = FacebookAuthProvider.credential(withAccessToken: token.tokenString)
Auth.auth().signIn(with: credential) { (authResult, error) in
// Handle success or failure
}
}
}
সারাংশ
ফায়ারবেস Authentication এর মাধ্যমে আপনি Google, Facebook, এবং অন্যান্য OAuth প্রদানকারী ব্যবহার করে আপনার অ্যাপে ইউজারদের লগইন করতে পারবেন। ফায়ারবেস কনসোল থেকে প্রতিটি সাইন-ইন পদ্ধতি সক্ষম করার পরে, আপনাকে অ্যাপে ফায়ারবেস SDK এবং সংশ্লিষ্ট OAuth SDK ইনস্টল এবং কনফিগার করতে হবে। এর পর, আপনি সাইন-ইন প্রক্রিয়া শুরু করতে পারেন এবং ইউজারকে Firebase Authentication সিস্টেমের মাধ্যমে অথেন্টিকেট করতে পারবেন।
Read more